package day1019;

import java.util.LinkedList;
import java.util.Queue;

/**
 * @Author:galaxy_yan
 * @Date: 2022/10/19
 * @Time: 20:31
 * @Description
 */
public class Exe03_MyStackByQueue {
    // 定义两个队列
    Queue<Integer> inQueue;
    Queue<Integer> outQueue;

    public Exe03_MyStackByQueue() {
// 把队列进行初始化
        inQueue = new LinkedList<>();
        outQueue = new LinkedList<>();
    }

    public void push(int x) {
// 直接入栈ao
        inQueue.offer(x);
// 把outQueue中的元素出队并入队到inQueue里
        while(!outQueue.isEmpty()){
            inQueue.offer(outQueue.poll());
        }
// inQueue和outQueue互换
        Queue<Integer> tmp=inQueue;
        inQueue=outQueue;
        outQueue=tmp;
    }

    public int pop() {
//        首先判断是否为空
        if(empty()){
            return -1;
        }
        return outQueue.poll();
    }

    public int top() {
        if(empty()){
            return -1;
        }
        return outQueue.peek();
    }

    public boolean empty() {
//        每次入队结束后inQueue都被置为空 ，所以直接判断outQueue
        return outQueue.isEmpty();
    }
}